<!-- 问题列表 -->

<template>
  <div class="QuestionnaireDetail-MyQuestion">
    <OurItem v-for="item in questionList" :key="item.key" :obj="item">
      <component :is="CORE.keyPre(item.type, 'My')" :obj="item" />
    </OurItem>
  </div>
</template>

<script>
// ============================== 导入依赖 ============================== //

import CORE from '@/CORE'

// ============================== 导出组件 ============================== //

export default {
  /**
   * 名称定义 (实际使用名称)
   */
  name: 'MyQuestion',

  /**
   * 混入列表 (配置选项合并)
   */
  mixins: [CORE.mixInfo(), CORE.mixWeb()],

  /**
   * 组件导入 (Abc.vue + Abc/index.vue)
   */
  ...CORE.components(require.context('./', true, /vue$/)),

  /**
   * 计算属性 (慎用箭头函数)
   */
  computed: {
    /**
     * 问题列表
     */
    questionList() {
      return this.info.questionList.filter(({ checkList }) => {
        if (CORE.isEmpty(checkList)) return true // 无关联

        return checkList.some(([no, letter]) => { // 关联判断
          const value = this.one[`no_${no}`]
          return value && value.includes(letter)
        })
      })
    },

    /**
     * 表单对象
     */
    form() {
      return this.one
    },

    /**
     * 是否禁用
     */
    disabled() {
      return !!this.one.answer.id
    },
  },
}
</script>

<style lang="scss">
@import './index.scss';
</style>
